/*
----------------------------------------
    Rodeo Game Engine
	Rodeo Core Module
	Copyright(c) Marcin Goryca
----------------------------------------
*/
#include "core\shadersmanager.h"

namespace rodeocore
{
void ShadersManager::create(ShadersVendor vendor, std::string vertex_shader, std::string fragment_shader)
{
    switch(vendor)
    {
    case RODEO_CG:
        {
            shader_ = std::unique_ptr<rodeorenderer::CGShaders>(new rodeorenderer::CGShaders);
            shader_->loadShaderFromFile(vertex_shader.c_str(), RODEO_VS);
            shader_->loadShaderFromFile(fragment_shader.c_str(), RODEO_FS);
            shader_->init();
        }
        break;

    case RODEO_GLSL:
        {
            glsl_shader_ = std::unique_ptr<rodeorenderer::GLSLShaders>(new rodeorenderer::GLSLShaders);
            glsl_shader_->setVertexShader(glsl_shader_->loadShaderFromFile(vertex_shader.c_str(), RODEO_VS));
            glsl_shader_->setFragmentShader(glsl_shader_->loadShaderFromFile(fragment_shader.c_str(), RODEO_FS));
            glsl_shader_->init();
        }
    }
}

//.............................//
void ShadersManager::load(std::string vertex_shader, std::string fragment_shader)
{

}
}    // end of rodeocore namespace